using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using System.Windows.Forms;
public partial class ReporteSolicitud : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            estadoCampos();
            Session["controlSolicitudes"] = new ControladoraSolicitudes(); ;
            Session["controlProyectos"] = new ControladoraProyectos();
            cargarListaProyectos();
        }
    }

    private void estadoCampos()
    {
        this.tbAnalista.Enabled = false;
        this.tbAsunto.Enabled = false;
        this.tbCategoria.Enabled = false;
        this.tbDescripcion.Enabled = false;
        this.tbDetallesAnalisis.Enabled = false;
        this.tbDetallesEvaluacion.Enabled = false;
        this.tbEstado.Enabled = false;
        this.tbEvaluador.Enabled = false;
        this.tbFechaAnalisis.Enabled = false;
        this.tbFechaCreacion.Enabled = false;
        this.tbFechaEmision.Enabled = false;
        this.tbFechaEvaluacion.Enabled = false;
        this.tbID.Enabled = false;
        this.tbJustificacion.Enabled = false;
        this.tbPrioridad.Enabled = false;
        this.tbOrganizacion.Enabled = false;
        this.tbSolicitante.Enabled = false;
        this.tbTiempo.Enabled = false;
        this.tbMeritoTecnico.Enabled = false;
        this.tbEfectoSoftware.Enabled = false;
        this.tbEfectoHardware.Enabled = false;
        this.tbCosto.Enabled = false;
        this.cbProyectos.Enabled = true;
        this.cbSolicitudes.Enabled = false;
    }

    private void cargarListaProyectos()
    {
        ControladoraProyectos controlProyectos = (ControladoraProyectos)Session["controlProyectos"];
        DataTable listProyectos = controlProyectos.solicitarProyectos();
        try
        {
            DataTableReader lector = listProyectos.CreateDataReader();
            while (lector.Read())
            {
                ListItem item = new ListItem(lector.GetValue(0).ToString(), lector.GetValue(1).ToString());
                this.cbProyectos.Items.Add(item);
            }

            ViewState["id_proyecto"] = this.cbProyectos.SelectedValue;
            int id_proyecto = Int32.Parse(this.cbProyectos.SelectedValue);
            cargarListaSolicitudes(id_proyecto);
            this.cbSolicitudes.Enabled = true;
        }
        catch (Exception e)
        {
        }
    }

    private void cargarListaSolicitudes(int id_proyecto)
    {
        ControladoraSolicitudes controlSolicitudes = (ControladoraSolicitudes)Session["controlSolicitudes"];
        DataTable listSolicitudes = controlSolicitudes.consultarSolicitudes(id_proyecto);
        this.cbSolicitudes.Items.Clear();
        try
        {
            DataTableReader lector = listSolicitudes.CreateDataReader();
            while (lector.Read())
            {
                ListItem item = new ListItem(lector.GetValue(0).ToString(), lector.GetValue(1).ToString());
                this.cbSolicitudes.Items.Add(item);
            }

            ViewState["id_solicitud"] = this.cbSolicitudes.SelectedItem.Text;
            int id_solicitud = Int32.Parse(cbSolicitudes.SelectedItem.Text);
            //ControladoraSolicitudes controlSolicitudes = (ControladoraSolicitudes)Session["controlSolicitudes"];
            Solicitud solicitud = controlSolicitudes.solicitarDatosSolicitud(id_solicitud);
            this.tbID.Text = solicitud.Id_solicitud.ToString();
            this.tbAsunto.Text = solicitud.Nombre;
            this.tbSolicitante.Text = solicitud.Nombre_solicitante;
            this.tbOrganizacion.Text = solicitud.Nombre_Organizacion;
            this.tbFechaCreacion.Text = solicitud.Fecha_creacion.ToString();
            this.tbFechaEmision.Text = solicitud.Fecha_emision.ToString();
            this.tbEstado.Text = solicitud.Estado;
            this.tbDescripcion.Text = solicitud.Descripcion;
            this.tbJustificacion.Text = solicitud.Justificacion;
            this.tbAnalista.Text = solicitud.Nombre_analista;
            this.tbFechaAnalisis.Text = solicitud.Fecha_analisis.ToString();
            this.tbDetallesAnalisis.Text = solicitud.Detalles_analisis;
            this.tbEvaluador.Text = solicitud.Nombre_evaluador;
            this.tbFechaEvaluacion.Text = solicitud.Fecha_evaluacion.ToString();
            this.tbDetallesEvaluacion.Text = solicitud.Detalles_evaluacion;
            this.tbPrioridad.Text = solicitud.Urgencia_cambio;
            this.tbCategoria.Text = solicitud.Categoria_cambio;
            this.tbEfectoHardware.Text = solicitud.Efecto_hardware;
            this.tbEfectoSoftware.Text = solicitud.Efecto_software;
            this.tbMeritoTecnico.Text = solicitud.Merito_tecnico;
            this.tbCosto.Text = solicitud.Costo.ToString();
            this.tbTiempo.Text = solicitud.Tiempo.ToString();

            DataTable ecs_afectados = controlSolicitudes.solicitarECSAfectados(id_solicitud);
            cargarECSAfectados(ecs_afectados);

        }
        catch (Exception e)
        {
        }
    }

    protected void cbSolicitudes_SelectedIndexChanged(object sender, EventArgs e)
    {
        string s = this.cbSolicitudes.SelectedItem.Text;
        //ViewState["id_solicitud"] = this.cbSolicitudes.SelectedValue;
        ViewState["id_solicitud"] = this.cbSolicitudes.SelectedItem.Text;
        int id_solicitud = Int32.Parse(cbSolicitudes.SelectedItem.Text);
        ControladoraSolicitudes controlSolicitudes = (ControladoraSolicitudes)Session["controlSolicitudes"];
        Solicitud solicitud = controlSolicitudes.solicitarDatosSolicitud(id_solicitud);
        this.tbID.Text = solicitud.Id_solicitud.ToString();
        this.tbAsunto.Text = solicitud.Nombre;
        this.tbSolicitante.Text = solicitud.Nombre_solicitante;
        this.tbOrganizacion.Text = solicitud.Nombre_Organizacion;
        this.tbFechaCreacion.Text = solicitud.Fecha_creacion.ToString();
        this.tbFechaEmision.Text = solicitud.Fecha_emision.ToString();
        this.tbEstado.Text = solicitud.Estado;
        this.tbDescripcion.Text = solicitud.Descripcion;
        this.tbJustificacion.Text = solicitud.Justificacion;
        this.tbAnalista.Text = solicitud.Nombre_analista;
        this.tbFechaAnalisis.Text = solicitud.Fecha_analisis.ToString();
        this.tbDetallesAnalisis.Text = solicitud.Detalles_analisis;
        this.tbEvaluador.Text = solicitud.Nombre_evaluador;
        this.tbFechaEvaluacion.Text = solicitud.Fecha_evaluacion.ToString();
        this.tbDetallesEvaluacion.Text = solicitud.Detalles_evaluacion;
        this.tbPrioridad.Text = solicitud.Urgencia_cambio;
        this.tbCategoria.Text = solicitud.Categoria_cambio;
        this.tbEfectoHardware.Text = solicitud.Efecto_hardware;
        this.tbEfectoSoftware.Text = solicitud.Efecto_software;
        this.tbMeritoTecnico.Text = solicitud.Merito_tecnico;
        this.tbCosto.Text = solicitud.Costo.ToString();
        this.tbTiempo.Text = solicitud.Tiempo.ToString();

        DataTable ecs_afectados = controlSolicitudes.solicitarECSAfectados(id_solicitud);
        cargarECSAfectados(ecs_afectados);

    }

    protected void cbProyectos_SelectedIndexChanged(object sender, EventArgs e)
    {
        ViewState["id_proyecto"] = this.cbProyectos.SelectedValue;
        int id_proyecto = Int32.Parse(this.cbProyectos.SelectedValue);
        cargarListaSolicitudes(id_proyecto);
        this.cbSolicitudes.Enabled = true;
    }

    private void cargarECSAfectados(DataTable ecs_afectados)
    {
        DataTable tabla = new DataTable();
        tabla = ecs_afectados;
        this.GridECS.DataSource = null;
        this.GridECS.DataSource = tabla;
        this.GridECS.DataBind();
    }
    protected void GridECS_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
}
